const express = require('express')
const app = express()
const port = 3000

app.get('/error1', (req, res) => {
  throw new Error('服务器异常处理啊啊啊')
})

app.get('/error2', (req, res) => {
  res.json({
    message
  })
})

// 处理异常
function error_handler_middleware_1(err, req, res, next) {
  if (err) {
    res.status(500)
      .json({
        message: '服务器异常'
      })
  } else {
    next()
  }
}

// function demo_middleware(){
//   try {
    
//   } catch (error) {
//     // 将该异常抛到它之后处理异常的地方
//     next(error)
//   }

//   // Promise.then().catch(next)
// }

// 处理异常
function error_handler_middleware(err, req, res, next) {
  if (err) {
    let { message } = err
    res.status(500)
      .json({
        message: `${message || '服务器异常'}`
      })
  } else {
    // next()
  }
}

// 处理404
function not_found_handler_middleware(req, res, next) {
  res.json({
    message: 'api不存在'
  })
}

app.use(not_found_handler_middleware)
app.use(error_handler_middleware)
// 中间件要放到最后use 
app.listen(port, () => {
  console.log('express 中间件服务器启动成功')
})

